File information: | |
File name: | DebugPilotCache.mesa_Sep78.pdf [preview DebugPilotCache.mesa Sep78] |
Size: | 225 kB |
Extension: | |
Mfg: | xerox |
Model: | DebugPilotCache.mesa Sep78 🔎 |
Original: | DebugPilotCache.mesa Sep78 🔎 |
Descr: | xerox mesa 4.0_1978 listing Mesa_4_Debug DebugPilotCache.mesa_Sep78.pdf |
Group: | Electronics > Other |
Uploaded: | 13-02-2020 |
User: | Anonymous |
Multipart: | No multipart |
Information about the files in archive: | ||
Decompress result: | OK | |
Extracted files: | 1 | |
File name DebugPilotCache.mesa_Sep78.pdf DebugPllotCache.mesa 2-Sep-78 15:32:14 Page 1 File: DebugPilotCache.Mesa Last edited by Johnsson: August 29, 1978 9:48 AM DIRECTORY AllocDefs: FROM "allocdefs" USING [MakeDataSegment], AltoDefs: FROM "altodefs" USING [PageSizeJ, DebugCacheDefs: FROM "debugcachedefs", DebugUtilityDefs: FROM "debugutilitydefs" USING [LongREAD, LongWRITE], DiskDefs: FROM "diskdefs" USING [ DA, DC, DH, OS, DSgoodStatus, DSmaskStatus, UnrecoverableDiskErrorJ, . InlineDefs: FROM "inlinedefs" USING [ BITAND, DIVMOD, LongMult], MiscDefs: FROM "miscdefs" USING [Zero], SegmentDefs: FROM "segmentdefs" USING [ DataSegmentAddress, DefaultBase, FileHandle, FileSegmentAddress, FileSegmentHandle, MoveFileSegment, NewFileSegment, Read, SwapIn, SwapUp, Unlock], VMMapLog: FROM "vmmaplog" USING [ Descriptor, Entry, EntryBasePointer, EntryPointer, Pilot31Label, PilotFID]: DebugPilotCache: PROGRAM IMPORTS AllocDefs, DebugUtilityDefs, DiskDers, MiscDefs, SegmentDefs EXPORTS DebugCacheDefs SHARES DiskDefs, SegmentDefs ~ BEGIN -- Dealing with the MapLog mfMap: DESCRIPTOR FOR ARRAY OF VMMapLog.Entry; mfMapSeg: SegmentDefs.FileSegmentHandle; mfMapLimit: CARDINAL; MFEntrySize: CARDINAL = SIZE[VMMapLog.Entry]; MapSwapBase: CARDINAL 16384-256; BadMapLogEntry: PUBLIC SIGNAL = CODE; InitMapSeg: PUBLIC PROCEDURE [f: SegmentDefs.FileHandle] = BEGIN OPEN SegmentDefs; mfMapSeg ~ NewFileSegment[f,256,l,ReadJ; END; ReinitMap: PUBLIC PROCEDURE [root: LONG POINTER TO VMMapLog.DescriptorJ = BEGIN OPEN SegmentOefs; entry: VMMapLog.Entry; ep: POINTER = @entry; i: CARDINAL; UNTIL mfMapSeg.lock = 0 DO Unlock[mfMapSeg] ENDLOOP; mfMapSeg.write ~ FALSE; MoveFileSegment[mfMapSeg, mfMapSeg.base, lJ; mfMapLimit ~ 0; IF root = NIL THEN RETURN; FOR i IN [O .. MFEntrySize) DO (ep+i)t ~ DebugUtilityDefs.LongREAD[@root.self+i] ENDLOOP; IF entry.page (= 255 THEN entry.page ~ entry. page + MapSwapBase; AcquireMap[]; AddMapEntry[@entry]: ProcessMapLog[root]; ReleaseMap[]; END; ProcessMapLog: PUBLIC PROCEDURE [root: LONG POINTER TO VMMapLog.Descriptor] = BEGIN OPEN DebugUtilityDefs; base: VMMapLog.EntryBasePointer; entry: VMMapLog.Entry; ep: POINTER |
Date | User | Rating | Comment |